#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//int main()
//{
//	int arr1[] = { 1,2,3,4,5,6,7,8,9,10 };
//	//01 00 00 00 | 02 00 00 00 | 03 00 00 00 | 04 00 00 00 | 05 00 00 00 | 06 00 00 00
//	int arr2[20] = { 0 };
//	memcpy(arr2, arr1, 21);
//
//	int i = 0;
//	for (i = 0; i < 20; i++)
//	{
//		printf("%d ", arr2[i]);
//	}
//
//	return 0;
//}
//#include<assert.h>
//void* my_memcpy(void* dest, const void* src, size_t num)
//{
//	assert(dest && src);//断言
//	void* start = dest;//保留dest数组的首地址，因为dest在下面会被改变
//	while (num--)//执行num次每次进行一个字节的复制
//	{
//		*(char*)dest = *(char*)src;//第一个字节的复制
//
//		dest=((char*)dest)++;//dest向后移动一个字节
//		src=((char*)src)++;  //src向后移动一个字节
//	}
//	return start;//复制完成之后，返回dest的首地址
//}
//int main()
//{
//	int arr1[] = { 1,2,3,4,5,6,7,8,9,10 };
//	//01 00 00 00 | 02 00 00 00 | 03 00 00 00 | 04 00 00 00 | 05 00 00 00 | 06 00 00 00
//	int arr2[20] = { 0 };
//	my_memcpy(arr2, arr1, 21);
//
//	int i = 0;
//	for (i = 0; i < 20; i++)
//	{
//		printf("%d ", arr2[i]);
//	}
//
//	return 0;
//}
//#include<stdio.h>
//#include<string.h>	
//#include<assert.h>
//void* my_memmove(void* dest, const void* src, size_t num)
//{
//	assert(dest && src);//断言
//	void* start = dest;//对dest初识地址进行保存
//
//	if (dest < src)//dest<src的情况
//	{
//		while (num--)//从前往后复制
//		{
//			*(char*)dest = *(char*)src;//第一个字节的复制
//			dest = ((char*)dest)++;//dest向后移动一个字节
//			src = ((char*)src)++;  //src向后移动一个字节
//		}
//	}
//	else //dest>src的情况
//	{
//		while (num--)//从后往前复制
//		{
//			*((char*)dest+num) = *((char*)src+num);//随着num改变，字节逐向前移动复制
//		}
//	}
//	return start;
//}
//int main()
//{
//	int arr1[] = { 1,2,3,4,5,6,7,8,9,10};
//	my_memmove(arr1+5, arr1+3, 20);
//
//	int i = 0;
//	for (i = 0; i < 10; i++)
//	{
//		printf("%d ", arr1[i]);
//	}
//
//	return 0;
//}
typedef struct
{
	int a;
	 stu* next;
	
}stu;
int main()
{



	return 0;
}